/********************************************************************************
 * Project Name		[JavaSE_Fundamentals]
 * File Name     	[TestSimpleDateFormat.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package api.text;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * java.text.SimpleDateFormat测试
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public class TestSimpleDateFormat {

	/**
	 * 日期转换为字符串
	 */
	public static void convertDateToString() {
		Date date = new Date();
		Locale locale = new Locale("zh", "CN");

		// 默认方式格式化
		SimpleDateFormat format = new SimpleDateFormat();
		System.out.println(format.format(date));

		// 指定匹配模式格式化
		format = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
		System.out.println(format.format(date));

		format = new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒");
		System.out.println(format.format(date));

		format = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss E a z", locale);
		System.out.println(format.format(date));

		// 指定的匹配模式字符串中包含有特殊字符
		format = new SimpleDateFormat();
		format.applyPattern("'在'yyyy年MM月dd日 hh点mm分ss秒'我们吃东西'");
		System.out.println(format.format(date));
	}

	/**
	 * 将字符串转换为日期
	 */
	public static void convertStringToDate() {
		String str1 = "2011/03/24 15:43:55";
		String str2 = "2011年03月24日 星期二 15点45分54秒";
		Locale locale = new Locale("zh", "CN");
		try {
			SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
			Date date = format.parse(str1);
			System.out.println(date);

			date = new SimpleDateFormat("yyyy年MM月dd日 E hh点mm分ss秒", locale).parse(str2);
			System.out.println(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) throws ParseException {
		convertDateToString();
		convertStringToDate();
	}
}
